WXME0108 ## 
#|
   This file is in PLT Scheme editor format.
   Most likely, it was created by saving a program in DrScheme,
   and it probably contains a program with non-text elements (such
   as pictures, comment boxes, or test-cases boxes).
   Open this file in DrScheme to read its content.
                 www.plt-scheme.org
|#
 31 7 #"wxtext\0"
3 1 6 #"wxtab\0"
1 1 8 #"wxmedia\0"
3 1 8 #"wximage\0"
2 0 34 #"(lib \"syntax-browser.ss\" \"mrlib\")\0"
1 0 16 #"drscheme:number\0"
3 0 44 #"(lib \"number-snip.ss\" \"drscheme\" \"private\")\0"
1 0 36 #"(lib \"comment-snip.ss\" \"framework\")\0"
1 0 43 #"(lib \"collapsed-snipclass.ss\" \"framework\")\0"
0 0 19 #"drscheme:sexp-snip\0"
0 0 33 #"(lib \"bullet-snip.ss\" \"browser\")\0"
0 0 29 #"drscheme:bindings-snipclass%\0"
1 0 36 #"(lib \"cache-image-snip.ss\" \"mrlib\")\0"
1 0 22 #"drscheme:lambda-snip%\0"
1 0 60
(
 #"(lib \"implementation.ss\" \"macro-debugger\" \"syntax-br"
 #"owser\")\0"
) 2 0 18 #"java-comment-box%\0"
1 0 23 #"java-interactions-box%\0"
1 0 15 #"make-line-snip\0"
1 0 15 #"make-line-snip\0"
1 0 13 #"example-box%\0"
2 0 18 #"interactions-box%\0"
2 0 45 #"(lib \"image-snipr.ss\" \"slideshow\" \"private\")\0"
1 0 26 #"drscheme:pict-value-snip%\0"
0 0 38 #"(lib \"pict-snipclass.ss\" \"slideshow\")\0"
2 0 55
(
 #"(lib \"vertical-separator-snip.ss\" \"stepper\" \"private"
 #"\")\0"
) 1 0 18 #"drscheme:xml-snip\0"
1 0 31 #"(lib \"xml-snipclass.ss\" \"xml\")\0"
1 0 21 #"drscheme:scheme-snip\0"
2 0 34 #"(lib \"scheme-snipclass.ss\" \"xml\")\0"
1 0 15 #"test-case-box%\0"
2 0 10 #"text-box%\0"
1 0 1 6 #"wxloc\0"
00000000000 1 50 0 1 #"\0"
0 75 1 #"\0"
0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 9
#"Standard\0"
0 75 12 #"Courier New\0"
0 15 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 24
#"framework:default-color\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 27
#"Matching Parenthesis Style\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 40
#"framework:syntax-coloring:scheme:symbol\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 41
#"framework:syntax-coloring:scheme:keyword\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 54 5 0 0 0 -1 -1 2 41
#"framework:syntax-coloring:scheme:comment\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 54 5 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 40
#"framework:syntax-coloring:scheme:string\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 42
#"framework:syntax-coloring:scheme:constant\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 45
#"framework:syntax-coloring:scheme:parenthesis\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 39
#"framework:syntax-coloring:scheme:error\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 39
#"framework:syntax-coloring:scheme:other\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 14
#"Html Standard\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2
49 #"drscheme:check-syntax:lexically-bound-identifier\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 42
#"drscheme:check-syntax:imported-identifier\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 37
#"profj:syntax-coloring:scheme:keyword\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 139 0 139 0 0 0 -1 -1 2 39
#"profj:syntax-coloring:scheme:prim-type\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 139 0 139 0 0 0 -1 -1 2 40
#"profj:syntax-coloring:scheme:identifier\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 36
#"profj:syntax-coloring:scheme:string\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 37
#"profj:syntax-coloring:scheme:literal\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2
37 #"profj:syntax-coloring:scheme:comment\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2
35 #"profj:syntax-coloring:scheme:error\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 37
#"profj:syntax-coloring:scheme:default\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 39
#"profj:syntax-coloring:scheme:uncovered\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 37
#"profj:syntax-coloring:scheme:covered\0"
0 -1 1 #"\0"
1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 139 0 139 0 0 0 -1 -1 2 1
#"\0"
0 70 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 4
#"XML\0"
0 70 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 4 1
#"\0"
0 71 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 4 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 4 1
#"\0"
0 71 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 4 1
#"\0"
0 71 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 -1 -1 4 1
#"\0"
0 75 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 -1 -1 0 1
#"\0"
0 75 12 #"Courier New\0"
0 15 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1
00000000003 0 00000000000 1 00000000000 7 00000000000 1686 0 16 3 1 #"("
0 0 9 3 6 #"module"
0 0 4 3 1 #" "
0 0 8 3 5 #"tests"
0 0 4 3 1 #" "
0 0 8 3 8 #"mzscheme"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 7 #"provide"
0 0 4 3 1 #" "
0 0 8 3 13 #"tests-for-run"
0 0 4 3 1 #" "
0 0 8 3 15 #"tests-for-check"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 11 3 39 #";;;;;;;;;;;;;;;; tests ;;;;;;;;;;;;;;;;"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 9 3 6 #"define"
0 0 4 3 1 #" "
0 0 8 3 13 #"tests-for-run"
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 1 #"'"
0 0 16 3 1 #"("
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 20 #";; simple arithmetic"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 14 #"positive-const"
0 0 4 3 1 #" "
0 0 13 3 4 #"\"11\""
0 0 4 3 1 #" "
0 0 14 3 2 #"11"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 14 #"negative-const"
0 0 4 3 1 #" "
0 0 13 3 5 #"\"-33\""
0 0 4 3 1 #" "
0 0 14 3 3 #"-33"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 14 #"simple-arith-1"
0 0 4 3 1 #" "
0 0 13 3 10 #"\"-(44,33)\""
0 0 4 3 1 #" "
0 0 14 3 2 #"11"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 20 #";; nested arithmetic"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"nested-arith-left"
0 0 4 3 1 #" "
0 0 13 3 16 #"\"-(-(44,33),22)\""
0 0 4 3 1 #" "
0 0 14 3 3 #"-11"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"nested-arith-right"
0 0 4 3 1 #" "
0 0 13 3 17 #"\"-(55, -(22,11))\""
0 0 4 3 1 #" "
0 0 14 3 2 #"44"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 19 #";; simple variables"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 10 #"test-var-1"
0 0 4 3 1 #" "
0 0 13 3 3 #"\"x\""
0 0 4 3 1 #" "
0 0 14 3 2 #"10"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 10 #"test-var-2"
0 0 4 3 1 #" "
0 0 13 3 8 #"\"-(x,1)\""
0 0 4 3 1 #" "
0 0 14 3 1 #"9"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 10 #"test-var-3"
0 0 4 3 1 #" "
0 0 13 3 8 #"\"-(1,x)\""
0 0 4 3 1 #" "
0 0 14 3 2 #"-9"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 27 #";; simple unbound variables"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"test-unbound-var-1"
0 0 4 3 1 #" "
0 0 13 3 5 #"\"foo\""
0 0 4 3 1 #" "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"test-unbound-var-2"
0 0 4 3 1 #" "
0 0 13 3 10 #"\"-(x,foo)\""
0 0 4 3 1 #" "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 22 #";; simple conditionals"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 7 #"if-true"
0 0 4 3 1 #" "
0 0 13 3 27 #"\"if zero?(0) then 3 else 4\""
0 0 4 3 1 #" "
0 0 14 3 1 #"3"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 8 #"if-false"
0 0 4 3 1 #" "
0 0 13 3 27 #"\"if zero?(1) then 3 else 4\""
0 0 4 3 1 #" "
0 0 14 3 1 #"4"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 54 #";; make sure that the test and both arms get evaluated"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 13 #";; properly. "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"if-eval-test-true"
0 0 4 3 1 #" "
0 0 13 3 27 #"\"if -(11,12) then 3 else 4\""
0 0 4 3 1 #" "
0 0 14 3 1 #"3"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"if-eval-test-false"
0 0 4 3 1 #" "
0 0 13 3 28 #"\"if -(11, 11) then 3 else 4\""
0 0 4 3 1 #" "
0 0 14 3 1 #"4"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"if-eval-then"
0 0 4 3 1 #" "
0 0 13 3 32 #"\"if 1 then -(22,1) else -(22,2)\""
0 0 4 3 1 #" "
0 0 14 3 2 #"21"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"if-eval-else"
0 0 4 3 1 #" "
0 0 13 3 32 #"\"if 0 then -(22,1) else -(22,2)\""
0 0 4 3 1 #" "
0 0 14 3 2 #"20"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 53 #";; and make sure the other arm doesn't get evaluated."
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 19 #"if-eval-test-true-2"
0 0 4 3 1 #" "
0 0 13 3 30 #"\"if -(11, 12) then 3 else foo\""
0 0 4 3 1 #" "
0 0 14 3 1 #"3"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 20 #"if-eval-test-false-2"
0 0 4 3 1 #" "
0 0 13 3 29 #"\"if -(11,11) then foo else 4\""
0 0 4 3 1 #" "
0 0 14 3 1 #"4"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 13 #";; simple let"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"simple-let-1"
0 0 4 3 1 #" "
0 0 13 3 16 #"\"let x = 3 in x\""
0 0 4 3 1 #" "
0 0 14 3 1 #"3"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 43 #";; make sure the body and rhs get evaluated"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 13 #"eval-let-body"
0 0 4 3 1 #" "
0 0 13 3 21 #"\"let x = 3 in -(x,1)\""
0 0 4 3 1 #" "
0 0 14 3 1 #"2"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"eval-let-rhs"
0 0 4 3 1 #" "
0 0 13 3 26 #"\"let x = -(4,1) in -(x,1)\""
0 0 4 3 1 #" "
0 0 14 3 1 #"2"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 33 #";; check nested let and shadowing"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"simple-nested-let"
0 0 4 3 1 #" "
0 0 13 3 34 #"\"let x = 3 in let y = 4 in -(x,y)\""
0 0 4 3 1 #" "
0 0 14 3 2 #"-1"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 23 #"check-shadowing-in-body"
0 0 4 3 1 #" "
0 0 13 3 29 #"\"let x = 3 in let x = 4 in x\""
0 0 4 3 1 #" "
0 0 14 3 1 #"4"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 22 #"check-shadowing-in-rhs"
0 0 4 3 1 #" "
0 0 13 3 34 #"\"let x = 3 in let x = -(x,1) in x\""
0 0 4 3 1 #" "
0 0 14 3 1 #"2"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 22 #";; simple applications"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 23 #"apply-proc-in-rator-pos"
0 0 4 3 1 #" "
0 0 13 3 28 #"\"(proc(x : int) -(x,1)  30)\""
0 0 4 3 1 #" "
0 0 14 3 2 #"29"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"apply-simple-proc"
0 0 4 3 1 #" "
0 0 13 3 41 #"\"let f = proc (x : int) -(x,1) in (f 30)\""
0 0 4 3 1 #" "
0 0 14 3 2 #"29"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 13 #"let-to-proc-1"
0 0 4 3 1 #" "
0 0 13 3 53 #"\"(proc(f : (int -> int))(f 30)  proc(x : int)-(x,1))\""
0 0 4 3 1 #" "
0 0 14 3 2 #"29"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"nested-procs"
0 0 4 3 1 #" "
0 0 13 3 47 #"\"((proc (x : int) proc (y : int) -(x,y)  5) 6)\""
0 0 4 3 1 #" "
0 0 14 3 2 #"-1"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 13 #"nested-procs2"
0 0 4 3 1 #" "
0 0 13 3 65
(
 #"\"let f = proc (x : int) proc (y : int) -(x,y) in ((f -(10,5)) 6)"
 #"\""
) 0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 14 3 2 #"-1"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 17 #";; simple letrecs"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 15 #"simple-letrec-1"
0 0 4 3 1 #" "
0 0 13 3 42 #"\"letrec int f(x : int) = -(x,1) in (f 33)\""
0 0 4 3 1 #" "
0 0 14 3 2 #"32"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 15 #"simple-letrec-2"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 70
(
 #"\"letrec int f (x : int) = if x then -((f -(x,1)), -2) else 0 in "
 #"(f 4)\""
) 0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 14 3 1 #"8"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 9 #"double-it"
0 0 4 3 1 #" "
0 0 13 3 1 #"\""
0 0 13 29 1 #"\n"
0 0 13 3 49 #"letrec int double (n : int) = if zero?(n) then 0 "
0 0 13 29 1 #"\n"
0 0 13 3 62
#"                                  else -( (double -(n,1)), -2)"
0 0 13 29 1 #"\n"
0 0 13 3 14 #"in (double 3)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 14 3 1 #"6"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 15 #"simple-letrec-3"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 12 #"\"let m = -5 "
0 0 13 29 1 #"\n"
0 0 13 3 72
(
 #" in letrec int f (x : int) = if x then -((f -(x,1)), m) else 0 in ("
 #"f 4)\""
) 0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 14 3 2 #"20"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 2 #";;"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 27 #";; explicit store run tests"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 2 #";;"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 9 #"deref-int"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 31 #"\"let l = newref(5) in deref(l)\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"5"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 10 #"deref-proc"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 37 #"    in let fl = newref(proc(int x) x)"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"    in (deref(fl) deref(l))\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"5"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"deref-let-proc"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 44 #"    in let fl = let f = proc(x : int) -(x,1)"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"                in newref(f)"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"    in (deref(fl) deref(l))\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"4"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"deref-letrec-proc"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 53 #"\"let plus = proc(x : int) proc(y : int) -(x, -(0, y))"
0 0 13 29 1 #"\n"
0 0 13 3 14 #"     in letrec"
0 0 13 29 1 #"\n"
0 0 13 3 19 #"       (int -> int)"
0 0 13 29 1 #"\n"
0 0 13 3 37 #"       times(x : int) = proc(c : int)"
0 0 13 29 1 #"\n"
0 0 13 3 20 #"         if zero?(c)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"          then 0"
0 0 13 29 1 #"\n"
0 0 13 3 45 #"          else ((plus x) ((times x) -(c, 1)))"
0 0 13 29 1 #"\n"
0 0 13 3 25 #"     in let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 23 #"     in let fl = letrec"
0 0 13 29 1 #"\n"
0 0 13 3 22 #"                   int"
0 0 13 29 1 #"\n"
0 0 13 3 46 #"                   fact(i : int) = if zero?(i)"
0 0 13 29 1 #"\n"
0 0 13 3 39 #"                                 then 1"
0 0 13 29 1 #"\n"
0 0 13 3 63
#"                                 else ((times i) (fact -(i,1)))"
0 0 13 29 1 #"\n"
0 0 13 3 32 #"                 in newref(fact)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in (deref(fl) deref(l))\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 3 #"120"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"setref-value"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 27 #"    in let v = setref(l, 6)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"    in deref(l)\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"6"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 18 #"ref-spaggeti-deref"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 28 #"\"let l3 = let l1 = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 35 #"             in let l2 = newref(l1)"
0 0 13 29 1 #"\n"
0 0 13 3 26 #"             in newref(l2)"
0 0 13 29 1 #"\n"
0 0 13 3 31 #"    in deref(deref(deref(l3)))\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"5"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"ref-store-loop"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 53 #"\"let plus = proc(x : int) proc(y : int) -(x, -(0, y))"
0 0 13 29 1 #"\n"
0 0 13 3 14 #"     in letrec"
0 0 13 29 1 #"\n"
0 0 13 3 19 #"       (int -> int)"
0 0 13 29 1 #"\n"
0 0 13 3 37 #"       times(x : int) = proc(c : int)"
0 0 13 29 1 #"\n"
0 0 13 3 20 #"         if zero?(c)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"          then 0"
0 0 13 29 1 #"\n"
0 0 13 3 30 #"          else ((plus x) ((tim"
0 0 13 3 15 #"es x) -(c, 1)))"
0 0 13 29 1 #"\n"
0 0 13 3 39 #"    in let fl = newref(proc(x : int) x)"
0 0 13 29 1 #"\n"
0 0 13 3 31 #"    in let fact = proc(n : int)"
0 0 13 29 1 #"\n"
0 0 13 3 38 #"                    if zero?(n) then 1"
0 0 13 29 1 #"\n"
0 0 13 3 56 #"                    else ((times n) (deref(fl)  -(n,1)))"
0 0 13 29 1 #"\n"
0 0 13 3 31 #"    in let v = setref(fl, fact)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"    in (fact 5)\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 3 #"120"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 11 3 2 #";;"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 11 3 25 #";; explicit-mutable-pairs"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 11 3 2 #";;"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"right-simple"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 42 #"\"let p = newpair(5,proc(x : int) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 21 #"     in (right(p) 1)\""
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 1 #"0"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"right-nested"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(zero?(1),proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 54 #"                    newpair(5,proc(x : int) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"     in (right(right(p)) 1)\""
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 1 #"0"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 11 #"left-simple"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 42 #"\"let p = newpair(5,proc(x : int) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"     in left(p)\""
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 1 #"5"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 11 #"left-nested"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 51 #"\"let p = newpair(newpair(zero?(1),proc(x : int) x),"
0 0 13 29 1 #"\n"
0 0 13 3 54 #"                    newpair(5,proc(x : int) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 22 #"     in left(left(p))\""
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 1 #"0"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"left-right-nested"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 52 #"\"let p = newpair(newpair(zero?(1), proc(x : int) x),"
0 0 13 29 1 #"\n"
0 0 13 3 55 #"                    newpair(5, proc(x : int) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 23 #"     in left(right(p))\""
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 1 #"5"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"right-left-nested"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 29 #"\"let p = newpair(newpair(zero"
0 0 13 3 22 #"?(1),proc(x : int) x),"
0 0 13 29 1 #"\n"
0 0 13 3 54 #"                    newpair(5,proc(x : int) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"     in (right(left(p)) 13)\""
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 2 #"13"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"setleft-simple"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 42 #"\"let p = newpair(5,proc(x : int) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in let z = setleft(p, 3)"
0 0 13 29 1 #"\n"
0 0 13 3 17 #"      in left(p)\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"3"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"setleft-nested"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 51 #"\"let p = newpair(newpair(zero?(1),proc(x : int) x),"
0 0 13 29 1 #"\n"
0 0 13 3 54 #"                    newpair(5,proc(x : int) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"     in let z = setleft(left(p), zero?(0))"
0 0 13 29 1 #"\n"
0 0 13 3 23 #"      in left(left(p))\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 3 #"137"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"setleft-pair"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 51 #"\"let p = newpair(newpair(zero?(1),proc(x : int) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 61
#"     in let z = setleft(p, newpair(zero?(0),proc(x : int) 1))"
0 0 13 29 1 #"\n"
0 0 13 3 23 #"      in left(left(p))\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 3 #"137"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 15 #"setleft-ref-app"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 41 #"\"let p = newpair(newref(proc(x : int) x),"
0 0 13 29 1 #"\n"
0 0 13 3 54 #"                    newpair(5,proc(x : int) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"     in let fptr = newref(proc(x : int) 1)"
0 0 13 29 1 #"\n"
0 0 13 3 33 #"      in let z = setleft(p, fptr)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"       in (deref(left(p)) 2)\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"1"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 15 #"setright-simple"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 42 #"\"let p = newpair(5,proc(x : int) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 38 #"     in let z = setright(p,proc(x : in"
0 0 13 3 17 #"t) zero?(-(x,1)))"
0 0 13 29 1 #"\n"
0 0 13 3 21 #"     in (right(p) 1)\""
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 3 #"137"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 15 #"setright-nested"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 51 #"\"let p = newpair(newpair(zero?(1),proc(x : int) x),"
0 0 13 29 1 #"\n"
0 0 13 3 54 #"                    newpair(5,proc(x : int) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 62
#"    in let z = setright(right(p), proc(x : int) zero?(-(x,1)))"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"     in (right(right(p)) 1)\""
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 3 #"137"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 13 #"setright-pair"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 51 #"\"let p = newpair(newpair(zero?(1),proc(x : int) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 62
#"     in let z = setright(p, newpair(0,proc(x : int) zero?(1)))"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"      in (right(right(p)) 0)\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"0"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 16 #"setright-ref-app"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 51 #"\"let p = newpair(newpair(5,proc(x : int) zero?(x)),"
0 0 13 29 1 #"\n"
0 0 13 3 44 #"                    newref(proc(x : int) x))"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"     in let fptr = newref(proc(x : int) 1)"
0 0 13 29 1 #"\n"
0 0 13 3 34 #"      in let z = setright(p, fptr)"
0 0 13 29 1 #"\n"
0 0 13 3 30 #"       in (deref(right(p)) 2)\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"1"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 11 3 13 #";pairs & refs"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"setref-refof-pair"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 26 #"\"let p12 = newpair(1,2) in"
0 0 13 29 1 #"\n"
0 0 13 3 26 #"    let p34 = newpair(3,4)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in let r12 = newref(p12)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in let r34 = newref(p34)"
0 0 13 29 1 #"\n"
0 0 13 3 43 #"         in let z = setref(r34, deref(r12))"
0 0 13 29 1 #"\n"
0 0 13 3 33 #"             in left(deref(r34))\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"1"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 19 #"setright-refof-pair"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 26 #"\"let p12 = newpair(1,2) in"
0 0 13 29 1 #"\n"
0 0 13 3 17 #"    let p34 = p12"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in let r12 = newref(p12)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in let r34 = newref(p34)"
0 0 13 29 1 #"\n"
0 0 13 3 43 #"         in let z = setright(deref(r34), 7)"
0 0 13 29 1 #"\n"
0 0 13 3 34 #"             in right(deref(r12))\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"7"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 19 #"setref-refof-pair-2"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 26 #"\"let p12 = newpair(1,2) in"
0 0 13 29 1 #"\n"
0 0 13 3 26 #"    let p34 = newpair(3,4)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in let r12 = newref(p12)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in let r34 = newref(p34)"
0 0 13 29 1 #"\n"
0 0 13 3 43 #"         in let z = setref(r34, deref(r12))"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"         in let z = setleft(deref(r12), 7)"
0 0 13 29 1 #"\n"
0 0 13 3 33 #"             in left(deref(r34))\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"7"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 11 3 12 #";; begin-end"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 9 3 11 #"begin-end-1"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 18 #"\"begin -(3,1) end\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 1 #"2"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 9 3 16 #"begin-end-nested"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 7 #"\"begin "
0 0 13 29 1 #"\n"
0 0 13 3 27 #"     begin 1; zero?(0) end;"
0 0 13 29 1 #"\n"
0 0 13 3 22 #"     (begin zero?(1); "
0 0 13 29 1 #"\n"
0 0 13 3 31 #"      begin proc(x : int) x end"
0 0 13 29 1 #"\n"
0 0 13 3 12 #"     end 15)"
0 0 13 29 1 #"\n"
0 0 13 3 8 #"    end\""
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 14 3 2 #"15"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 11 3 36 #";;   ;; multiple-argument procedures"
0 0 4 29 1 #"\n"
0 0 11 3 21 #";;   (mult-arg-proc-2"
0 0 4 29 1 #"\n"
0 0 11 3 64
#";;    \"let app2 = proc(f : (int * int -> int), int : x, y : int)"
0 0 4 29 1 #"\n"
0 0 11 3 23 #";;              (f x y)"
0 0 4 29 1 #"\n"
0 0 11 3 59
#";;      in let plus = proc (x : int, y : int) -(x, -(0, y))"
0 0 4 29 1 #"\n"
0 0 11 3 29 #";;       in (app2 plus 7 11)\""
0 0 4 29 1 #"\n"
0 0 11 3 9 #";;    18)"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 2 #"))"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 11 3 3 #";;;"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 11 3 24 #";;; Tests for type-check"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 11 3 3 #";;;"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 9 3 6 #"define"
0 0 4 3 1 #" "
0 0 8 3 15 #"tests-for-check"
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 14 3 1 #"'"
0 0 16 3 1 #"("
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 24 #";; tests from run-tests:"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 20 #";; simple arithmetic"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 14 #"positive-const"
0 0 4 3 1 #" "
0 0 13 3 4 #"\"11\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 14 #"negative-const"
0 0 4 3 1 #" "
0 0 13 3 5 #"\"-33\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 14 #"simple-arith-1"
0 0 4 3 1 #" "
0 0 13 3 10 #"\"-(44,33)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 20 #";; nested arithmetic"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"nested-arith-left"
0 0 4 3 1 #" "
0 0 13 3 16 #"\"-(-(44,33),22)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"nested-arith-right"
0 0 4 3 1 #" "
0 0 13 3 17 #"\"-(55, -(22,11))\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 19 #";; simple variables"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 10 #"test-var-1"
0 0 4 3 1 #" "
0 0 13 3 3 #"\"x\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 10 #"test-var-2"
0 0 4 3 1 #" "
0 0 13 3 8 #"\"-(x,1)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 10 #"test-var-3"
0 0 4 3 1 #" "
0 0 13 3 8 #"\"-(1,x)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 11 #"zero-test-1"
0 0 4 3 1 #" "
0 0 13 3 15 #"\"zero?(-(3,2))\""
0 0 4 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 11 #"zero-test-2"
0 0 4 3 1 #" "
0 0 13 3 15 #"\"-(2,zero?(0))\""
0 0 4 3 1 #" "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 27 #";; simple unbound variables"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"test-unbound-var-1"
0 0 4 3 1 #" "
0 0 13 3 5 #"\"foo\""
0 0 4 3 1 #" "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"test-unbound-var-2"
0 0 4 3 1 #" "
0 0 13 3 10 #"\"-(x,foo)\""
0 0 4 3 1 #" "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 22 #";; simple conditionals"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 7 #"if-true"
0 0 4 3 1 #" "
0 0 13 3 27 #"\"if zero?(1) then 3 else 4\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 8 #"if-false"
0 0 4 3 1 #" "
0 0 13 3 27 #"\"if zero?(0) then 3 else 4\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 54 #";; make sure that the test and both arms get evaluated"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 13 #";; properly. "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"if-eval-test-true"
0 0 4 3 1 #" "
0 0 13 3 34 #"\"if zero?(-(11,12)) then 3 else 4\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"if-eval-test-false"
0 0 4 3 1 #" "
0 0 13 3 35 #"\"if zero?(-(11, 11)) then 3 else 4\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"if-eval-then"
0 0 4 3 1 #" "
0 0 13 3 39 #"\"if zero?(1) then -(22,1) else -(22,2)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"if-eval-else"
0 0 4 3 1 #" "
0 0 13 3 39 #"\"if zero?(0) then -(22,1) else -(22,2)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 50 #";; make sure types of arms agree (new for lang5-1)"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 15 #"if-compare-arms"
0 0 4 3 1 #" "
0 0 13 3 34 #"\"if zero?(0) then 1 else zero?(1)\""
0 0 4 3 1 #" "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 24 #"if-check-test-is-boolean"
0 0 4 3 1 #" "
0 0 13 3 22 #"\"if 1 then 11 else 12\""
0 0 4 3 1 #" "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 13 #";; simple let"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"simple-let-1"
0 0 4 3 1 #" "
0 0 13 3 16 #"\"let x = 3 in x\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 43 #";; make sure the body and rhs get evaluated"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 13 #"eval-let-body"
0 0 4 3 1 #" "
0 0 13 3 21 #"\"let x = 3 in -(x,1)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"eval-let-rhs"
0 0 4 3 1 #" "
0 0 13 3 26 #"\"let x = -(4,1) in -(x,1)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 33 #";; check nested let and shadowing"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"simple-nested-let"
0 0 4 3 1 #" "
0 0 13 3 34 #"\"let x = 3 in let y = 4 in -(x,y)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 23 #"check-shadowing-in-body"
0 0 4 3 1 #" "
0 0 13 3 29 #"\"let x = 3 in let x = 4 in x\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 22 #"check-shadowing-in-rhs"
0 0 4 3 1 #" "
0 0 13 3 34 #"\"let x = 3 in let x = -(x,1) in x\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 22 #";; simple applications"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 23 #"apply-proc-in-rator-pos"
0 0 4 3 1 #" "
0 0 13 3 29 #"\"(proc( x : int) -(x,1)  30)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"apply-simple-proc"
0 0 4 3 1 #" "
0 0 13 3 41 #"\"let f = proc (x : int) -(x,1) in (f 30)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 13 #"let-to-proc-1"
0 0 4 3 1 #" "
0 0 13 3 54 #"\"(proc( f : (int -> int))(f 30)  proc(x : int)-(x,1))\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 12 #"nested-procs"
0 0 4 3 1 #" "
0 0 13 3 48 #"\"((proc (x : int) proc (y : int ) -(x,y)  5) 6)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 13 #"nested-procs2"
0 0 4 3 1 #" "
0 0 13 3 65
(
 #"\"let f = proc (x : int) proc (y : int) -(x,y) in ((f -(10,5)) 3)"
 #"\""
) 0 0 4 29 1 #"\n"
0 0 4 3 21 #"                     "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 17 #";; simple letrecs"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 15 #"simple-letrec-1"
0 0 4 3 1 #" "
0 0 13 3 42 #"\"letrec int f(x : int) = -(x,1) in (f 33)\""
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 15 #"simple-letrec-2"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 76
(
 #"\"letrec int f(x : int) = if zero?(x) then 0 else -((f -(x,1)), -"
 #"2) in (f 4)\""
) 0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 15 #"simple-letrec-3"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 12 #"\"let m = -5 "
0 0 13 29 1 #"\n"
0 0 13 3 78
(
 #" in letrec int f(x : int) = if zero?(x) then -((f -(x,1)), m) else "
 #"0 in (f 4)\""
) 0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 9 #"double-it"
0 0 4 3 1 #" "
0 0 13 3 1 #"\""
0 0 13 29 1 #"\n"
0 0 13 3 49 #"letrec int double (n : int) = if zero?(n) then 0 "
0 0 13 29 1 #"\n"
0 0 13 3 62
#"                                  else -( (double -(n,1)), -2)"
0 0 13 29 1 #"\n"
0 0 13 3 14 #"in (double 3)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 11 3 47 #";; tests of expressions that produce procedures"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"build-a-proc-typed"
0 0 4 3 1 #" "
0 0 13 3 23 #"\"proc (x : int) -(x,1)\""
0 0 4 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 2 #"))"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 20 #"build-a-proc-typed-2"
0 0 4 3 1 #" "
0 0 13 3 30 #"\"proc (x : int) zero?(-(x,1))\""
0 0 4 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 2 #"))"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"bind-a-proc-typed"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 40 #"\"let f = proc (x : int) -(x,1) in (f 4)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 3 1 #" "
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 23 #"bind-a-proc-return-proc"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 36 #"\"let f = proc (x : int) -(x,1) in f\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 2 #"))"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 16 #"type-a-ho-proc-1"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 31 #"\"proc(f : (int -> bool)) (f 3)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 16 3 2 #"(("
0 0 8 3 3 #"int"
0 0 4 3 2 #"  "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 1 #")"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 2 #"))"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 16 #"type-a-ho-proc-2"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 32 #"\"proc(f : (bool -> bool)) (f 3)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 15 #"apply-a-ho-proc"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 48 #"\"proc (x : int) proc ( f : (int -> bool)) (f x)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 16 3 2 #"(("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 1 #")"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 3 #")))"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"apply-a-ho-proc-2"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 57
#"\"proc (x : int) proc ( f : (int -> (int -> bool))) (f x)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 16 3 2 #"(("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 2 #"))"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 3 #")))"
0 0 4 3 1 #" "
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"apply-a-ho-proc-3"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 64
(
 #"\"proc (x : int) proc ( f : (int -> (int -> bool))) (f zero?(x))"
 #"\""
) 0 0 4 29 1 #"\n"
0 1 4 65 1 #"\t"
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 18 #"apply-curried-proc"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 45 #"\"((proc(x : int) proc (y : int)-(x,y)  4) 3)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 20 #"apply-a-proc-2-typed"
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 13 3 27 #"\"(proc (x : int) -(x,1) 4)\""
0 0 4 3 1 #" "
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 14 #"apply-a-letrec"
0 0 4 3 1 #" "
0 0 13 3 1 #"\""
0 0 13 29 1 #"\n"
0 0 13 3 30 #"letrec int f(x : int) = -(x,1)"
0 0 13 29 1 #"\n"
0 0 13 3 10 #"in (f 40)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 20 #"letrec-non-shadowing"
0 0 4 29 1 #"\n"
0 0 4 3 3 #"   "
0 0 13 3 16 #"\"(proc (x : int)"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"      letrec bool loop(x : bool) =(loop x)"
0 0 13 29 1 #"\n"
0 0 13 3 11 #"       in x"
0 0 13 29 1 #"\n"
0 0 13 3 8 #"     1)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 4 #"    "
0 0 4 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 18 #"letrec-return-fact"
0 0 4 3 1 #" "
0 0 13 3 1 #"\""
0 0 13 29 1 #"\n"
0 0 13 3 70
(
 #"let times = proc (x : int) proc (y : int) -(x,y)    % not really ti"
 #"mes"
) 0 0 13 29 1 #"\n"
0 0 13 3 10 #"in letrec "
0 0 13 29 1 #"\n"
0 0 13 3 74
(
 #"     int fact(x : int) = if zero?(x) then 1 else ((times x) (fact -"
 #"(x,1)))"
) 0 0 13 29 1 #"\n"
0 0 13 3 11 #"   in fact\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 4 3 1 #" "
0 0 8 3 2 #"->"
0 0 4 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 2 #"))"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 16 3 1 #"("
0 0 8 3 17 #"letrec-apply-fact"
0 0 4 3 1 #" "
0 0 13 3 1 #"\""
0 0 13 29 1 #"\n"
0 0 13 3 70
(
 #"let times = proc (x : int) proc (y : int) -(x,y)    % not really ti"
 #"mes"
) 0 0 13 29 1 #"\n"
0 0 13 3 10 #"in letrec "
0 0 13 29 1 #"\n"
0 0 13 3 74
(
 #"     int fact(x : int) = if zero?(x) then 1 else ((times x) (fact -"
 #"(x,1)))"
) 0 0 13 29 1 #"\n"
0 0 13 3 15 #"   in (fact 4)\""
0 0 4 29 1 #"\n"
0 0 4 3 8 #"        "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 4 29 1 #"\n"
0 0 4 3 6 #"      "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 7 00000006331 4 00000000000 1 00000000000 1054 0 11 3 2 #";;"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 11 3 17 #";; explicit store"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 11 3 2 #";;"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 13 #"type-newref-1"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 11 #"\"newref(5)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 5 #"refto"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 2 #"))"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 13 #"type-newref-2"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 25 #"\"newref(proc(x : int) x)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 5 #"refto"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 3 #")))"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 9 #"deref-int"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 31 #"\"let l = newref(5) in deref(l)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 10 #"deref-proc"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 37 #"    in let fl = newref(proc(int x) x)"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"    in (deref(fl) deref(l))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 23 #"apply-to-loc-type-error"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 37 #"    in let fl = newref(proc(int x) x)"
0 0 13 29 1 #"\n"
0 0 13 3 21 #"    in (deref(fl) l)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"deref-let-proc"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"    in let fl = let f = proc(int x) -(x,1)"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"                in newref(f)"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"    in (deref(fl) deref(l))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"deref-letrec-proc"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let plus = proc(int x) proc(int y) -(x, -(0, y))"
0 0 13 29 1 #"\n"
0 0 13 3 14 #"     in letrec"
0 0 13 29 1 #"\n"
0 0 13 3 19 #"       (int -> int)"
0 0 13 29 1 #"\n"
0 0 13 3 33 #"       times(int x) = proc(int c)"
0 0 13 29 1 #"\n"
0 0 13 3 20 #"         if zero?(c)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"          then 0"
0 0 13 29 1 #"\n"
0 0 13 3 45 #"          else ((plus x) ((times x) -(c, 1)))"
0 0 13 29 1 #"\n"
0 0 13 3 25 #"     in let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 23 #"     in let fl = letrec"
0 0 13 29 1 #"\n"
0 0 13 3 22 #"                   int"
0 0 13 29 1 #"\n"
0 0 13 3 44 #"                   fact(int i) = if zero?(i)"
0 0 13 29 1 #"\n"
0 0 13 3 39 #"                                 then 1"
0 0 13 29 1 #"\n"
0 0 13 3 63
#"                                 else ((times i) (fact -(i,1)))"
0 0 13 29 1 #"\n"
0 0 13 3 32 #"                 in newref(fact)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in (deref(fl) deref(l))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"setref-value"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 27 #"    in let v = setref(l, 6)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"    in deref(l)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 15 #"setref-type-err"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 34 #"    in let v = setref(l, zero?(5))"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"    in deref(l)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"setref-type-err-2"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 27 #"    in let v = setref(l, 4)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"    in zero?(v)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"setref-type-err-3"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 18 #"\"let l = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 27 #"    in let v = setref(l, 4)"
0 0 13 29 1 #"\n"
0 0 13 3 14 #"    in -(v,1)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 22 #"ref-spaggeti-typecheck"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 19 #"\"let l1 = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 26 #"    in let l2 = newref(l1)"
0 0 13 29 1 #"\n"
0 0 13 3 26 #"    in let l3 = newref(l2)"
0 0 13 29 1 #"\n"
0 0 13 3 10 #"    in l3\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 5 #"refto"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 5 #"refto"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 5 #"refto"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 4 #"))))"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 18 #"ref-spaggeti-deref"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 28 #"\"let l3 = let l1 = newref(5)"
0 0 13 29 1 #"\n"
0 0 13 3 35 #"             in let l2 = newref(l1)"
0 0 13 29 1 #"\n"
0 0 13 3 26 #"             in newref(l2)"
0 0 13 29 1 #"\n"
0 0 13 3 31 #"    in deref(deref(deref(l3)))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"ref-store-loop"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let plus = proc(int x) proc(int y) -(x, -(0, y))"
0 0 13 29 1 #"\n"
0 0 13 3 14 #"     in letrec"
0 0 13 29 1 #"\n"
0 0 13 3 19 #"       (int -> int)"
0 0 13 29 1 #"\n"
0 0 13 3 33 #"       times(int x) = proc(int c)"
0 0 13 29 1 #"\n"
0 0 13 3 20 #"         if zero?(c)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"          then 0"
0 0 13 29 1 #"\n"
0 0 13 3 45 #"          else ((plus x) ((times x) -(c, 1)))"
0 0 13 29 1 #"\n"
0 0 13 3 37 #"    in let fl = newref(proc(int x) x)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"    in let fact = proc(int n)"
0 0 13 29 1 #"\n"
0 0 13 3 38 #"                    if zero?(n) then 1"
0 0 13 29 1 #"\n"
0 0 13 3 56 #"                    else ((times n) (deref(fl)  -(n,1)))"
0 0 13 29 1 #"\n"
0 0 13 3 31 #"    in let v = setref(fl, fact)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"    in (fact 5)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 11 3 2 #";;"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 11 3 25 #";; explicit-mutable-pairs"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 11 3 2 #";;"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"newpair-simple"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 33 #"\"newpair(5,proc(int x) zero?(x))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 6 #"pairof"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 1 #"*"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 3 #")))"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 11 #"newpair-ref"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 41 #"\"newref(newpair(5,proc(int x) zero?(x)))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 5 #"refto"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 6 #"pairof"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 1 #"*"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 4 #"))))"
0 0 2 29 1 #"\n"
0 0 2 3 4 #"    "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"newpair-nested"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 41 #"\"newpair(newpair(5,proc(int x) zero?(x)),"
0 0 13 29 1 #"\n"
0 0 13 3 45 #"            newpair(5,proc(int x) zero?(x)))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 6 #"pairof"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 6 #"pairof"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 1 #"*"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 2 #"))"
0 0 2 3 1 #" "
0 0 8 3 1 #"*"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 6 #"pairof"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 1 #"*"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 4 #"))))"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"right-simple"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 40 #"\"let p = newpair(5,proc(int x) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 17 #"     in right(p)\""
0 0 2 29 1 #"\n"
0 0 2 3 4 #"    "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 2 #"))"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"right-nested"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(zero?(1),proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 24 #"     in right(right(p))\""
0 0 2 29 1 #"\n"
0 0 2 3 4 #"    "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 2 #"))"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 11 #"left-simple"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 40 #"\"let p = newpair(5,proc(int x) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"     in left(p)\""
0 0 2 29 1 #"\n"
0 0 2 3 4 #"    "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 11 #"left-nested"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(zero?(1),proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 22 #"     in left(left(p))\""
0 0 2 29 1 #"\n"
0 0 2 3 4 #"    "
0 0 8 3 4 #"bool"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"left-right-nested"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(zero?(1),proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 23 #"     in left(right(p))\""
0 0 2 29 1 #"\n"
0 0 2 3 4 #"    "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"right-left-nested"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(zero?(1),proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 23 #"     in right(left(p))\""
0 0 2 29 1 #"\n"
0 0 2 3 4 #"    "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 2 #"))"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"setleft-simple"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 40 #"\"let p = newpair(5,proc(int x) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in let z = setleft(p, 3)"
0 0 13 29 1 #"\n"
0 0 13 3 17 #"      in left(p)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 14 #"setleft-nested"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(zero?(1),proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"     in let z = setleft(left(p), zero?(0))"
0 0 13 29 1 #"\n"
0 0 13 3 23 #"      in left(left(p))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 4 #"bool"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"setleft-pair"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(zero?(1),proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 59
#"     in let z = setleft(p, newpair(zero?(0),proc(int x) 1))"
0 0 13 29 1 #"\n"
0 0 13 3 23 #"      in left(left(p))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 4 #"bool"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 11 #"setleft-ref"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 39 #"\"let p = newpair(newref(proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 40 #"     in let fptr = newref(proc(int x) 1)"
0 0 13 29 1 #"\n"
0 0 13 3 33 #"      in let z = setleft(p, fptr)"
0 0 13 29 1 #"\n"
0 0 13 3 18 #"       in left(p)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 5 #"refto"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 3 #")))"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 15 #"setleft-ref-app"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 39 #"\"let p = newpair(newref(proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 40 #"     in let fptr = newref(proc(int x) 1)"
0 0 13 29 1 #"\n"
0 0 13 3 33 #"      in let z = setleft(p, fptr)"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"       in (deref(left(p)) 2)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 15 #"setright-simple"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 40 #"\"let p = newpair(5,proc(int x) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 53 #"     in let z = setright(p,proc(int x) zero?(-(x,1)))"
0 0 13 29 1 #"\n"
0 0 13 3 17 #"     in right(p)\""
0 0 2 29 1 #"\n"
0 0 2 3 4 #"    "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 2 #"))"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 15 #"setright-nested"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(zero?(1),proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 60
#"    in let z = setright(right(p), proc(int x) zero?(-(x,1)))"
0 0 13 29 1 #"\n"
0 0 13 3 24 #"     in right(right(p))\""
0 0 2 29 1 #"\n"
0 0 2 3 4 #"    "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 2 #"))"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 13 #"setright-pair"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(zero?(1),proc(int x) x),"
0 0 13 29 1 #"\n"
0 0 13 3 52 #"                    newpair(5,proc(int x) zero?(x)))"
0 0 13 29 1 #"\n"
0 0 13 3 60
#"     in let z = setright(p, newpair(0,proc(int x) zero?(1)))"
0 0 13 29 1 #"\n"
0 0 13 3 25 #"      in right(right(p))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 4 #"bool"
0 0 16 3 2 #"))"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"setright-ref"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(5,proc(int x) zero?(x)),"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"                    newref(proc(int x) x))"
0 0 13 29 1 #"\n"
0 0 13 3 40 #"     in let fptr = newref(proc(int x) 1)"
0 0 13 29 1 #"\n"
0 0 13 3 34 #"      in let z = setright(p, fptr)"
0 0 13 29 1 #"\n"
0 0 13 3 19 #"       in right(p)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 5 #"refto"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 3 #")))"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 16 #"setright-ref-app"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 49 #"\"let p = newpair(newpair(5,proc(int x) zero?(x)),"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"                    newref(proc(int x) x))"
0 0 13 29 1 #"\n"
0 0 13 3 40 #"     in let fptr = newref(proc(int x) 1)"
0 0 13 29 1 #"\n"
0 0 13 3 34 #"      in let z = setright(p, fptr)"
0 0 13 29 1 #"\n"
0 0 13 3 30 #"       in (deref(right(p)) 2)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 11 3 13 #";pairs & refs"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 10 #"refof-pair"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 22 #"\"newref(newpair(1,2))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 5 #"refto"
0 0 2 3 1 #" "
0 0 16 3 1 #"("
0 0 8 3 6 #"pairof"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 1 #"*"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 3 #")))"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 17 #"setref-refof-pair"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 23 #"\"let p12 = newpair(1,2)"
0 0 13 29 1 #"\n"
0 0 13 3 30 #"     in let p34 = newpair(3,4)"
0 0 13 29 1 #"\n"
0 0 13 3 30 #"      in let r12 = newref(p12)"
0 0 13 29 1 #"\n"
0 0 13 3 31 #"       in let r34 = newref(p34)"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"        in let z = setref(r34, deref(r12))"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"         in left(deref(r34))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 19 #"setright-refof-pair"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 23 #"\"let p12 = newpair(1,2)"
0 0 13 29 1 #"\n"
0 0 13 3 21 #"     in let p34 = p12"
0 0 13 29 1 #"\n"
0 0 13 3 30 #"      in let r12 = newref(p12)"
0 0 13 29 1 #"\n"
0 0 13 3 31 #"       in let r34 = newref(p34)"
0 0 13 29 1 #"\n"
0 0 13 3 42 #"        in let z = setright(deref(r34), 7)"
0 0 13 29 1 #"\n"
0 0 13 3 30 #"         in right(deref(r34))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 3 #"int"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 11 3 17 #";pair type errors"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 9 #"left-terr"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 40 #"\"let p = newpair(5,proc(int x) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 21 #"      in (left(p) 1)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 10 #"right-terr"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 40 #"\"let p = newpair(5,proc(int x) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 30 #"       in (right(p) zero?(0))\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 12 #"setleft-terr"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 40 #"\"let p = newpair(5,proc(int x) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 36 #"     in let z = setleft(p, zero?(5))"
0 0 13 29 1 #"\n"
0 0 13 3 17 #"      in left(p)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 13 #"setright-terr"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 40 #"\"let p = newpair(5,proc(int x) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 29 #"     in let f = proc(int x) x"
0 0 13 29 1 #"\n"
0 0 13 3 31 #"      in let z = setright(p, f)"
0 0 13 29 1 #"\n"
0 0 13 3 24 #"       in (right(p) 17)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 21 #"setleft-retval-terr-1"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 21 #"\"let l = newpair(5,4)"
0 0 13 29 1 #"\n"
0 0 13 3 27 #"    in let v = setleft(l,2)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"    in zero?(v)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 21 #"setleft-retval-terr-2"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 21 #"\"let l = newpair(5,4)"
0 0 13 29 1 #"\n"
0 0 13 3 27 #"    in let v = setleft(l,2)"
0 0 13 29 1 #"\n"
0 0 13 3 14 #"    in -(v,1)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 22 #"setright-retval-terr-1"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 21 #"\"let l = newpair(5,4)"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"    in let v = setright(l,2)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"    in zero?(v)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 22 #"setright-retval-terr-2"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 21 #"\"let l = newpair(5,4)"
0 0 13 29 1 #"\n"
0 0 13 3 28 #"    in let v = setright(l,2)"
0 0 13 29 1 #"\n"
0 0 13 3 14 #"    in -(v,1)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 15 #"deref-pair-terr"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 40 #"\"let p = newpair(5,proc(int x) zero?(x))"
0 0 13 29 1 #"\n"
0 0 13 3 17 #"     in deref(p)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 8 3 13 #"left-ref-terr"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 18 #"\"let p = newref(3)"
0 0 13 29 1 #"\n"
0 0 13 3 16 #"     in left(p)\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 5 #"error"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 11 3 12 #";; begin-end"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 9 3 16 #"begin-end-single"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 20 #"\"begin zero?(0) end\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 4 #"bool"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 9 3 11 #"begin-end-2"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 23 #"\"begin 1; zero?(0) end\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 8 3 4 #"bool"
0 0 16 3 1 #")"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 16 3 1 #"("
0 0 9 3 16 #"begin-end-nested"
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 13 3 7 #"\"begin "
0 0 13 29 1 #"\n"
0 0 13 3 27 #"     begin 1; zero?(0) end;"
0 0 13 29 1 #"\n"
0 0 13 3 21 #"     begin zero?(1); "
0 0 13 29 1 #"\n"
0 0 13 3 29 #"      begin proc(int x) x end"
0 0 13 29 1 #"\n"
0 0 13 3 8 #"     end"
0 0 13 29 1 #"\n"
0 0 13 3 8 #"    end\""
0 0 2 29 1 #"\n"
0 0 2 3 3 #"   "
0 0 16 3 1 #"("
0 0 8 3 3 #"int"
0 0 2 3 1 #" "
0 0 8 3 2 #"->"
0 0 2 3 1 #" "
0 0 8 3 3 #"int"
0 0 16 3 2 #"))"
0 0 2 29 1 #"\n"
0 0 2 3 2 #"  "
0 0 2 29 1 #"\n"
0 0 11 3 36 #";;   ;; multiple-argument procedures"
0 0 2 29 1 #"\n"
0 0 11 3 21 #";;   (mult-arg-proc-1"
0 0 2 29 1 #"\n"
0 0 11 3 41 #";;    \"proc(int x, (int -> int) y) (y x)\""
0 0 2 29 1 #"\n"
0 0 11 3 34 #";;    (int * (int -> int) -> int))"
0 0 2 29 1 #"\n"
0 0 2 29 1 #"\n"
0 0 11 3 21 #";;   (mult-arg-proc-2"
0 0 2 29 1 #"\n"
0 0 11 3 59
#";;    \"let app2 = proc( (int * int -> int) f, int x, int y)"
0 0 2 29 1 #"\n"
0 0 11 3 23 #";;              (f x y)"
0 0 2 29 1 #"\n"
0 0 11 3 55 #";;      in let plus = proc (int x, int y) -(x, -(0, y))"
0 0 2 29 1 #"\n"
0 0 11 3 29 #";;       in (app2 plus 7 11)\""
0 0 2 29 1 #"\n"
0 0 11 3 10 #";;    int)"
0 0 2 29 1 #"\n"
0 00000000000 0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 16 3 2 #"))"
0 0 4 29 1 #"\n"
0 0 4 3 2 #"  "
0 0 4 29 1 #"\n"
0 0 16 3 1 #")"
0 00000000000
